aosでPingpongプロセスを作成する
このチュートリアルでは、aosでシンプルな「ping-pong」プロセスを作成する方法を説明します。このプロセスでは、「ping」というデータを含むメッセージを受信するたびに、自動的に「pong」と返信します。これは、aosにおけるメッセージ処理とプロセス間の相互作用の基本的な例です。
ステップ1: aos
CLIを開く
- コマンドラインインターフェースを開き、
aos
と入力してaos環境に入ります。
ステップ2: エディタにアクセス
- aos CLIで
.editor
と入力してインラインテキストエディタを開きます。ここでping-pongハンドラーコードを記述します。
ステップ3: Pingpongハンドラーを書く
- エディタに以下のLuaコードを入力してpingpongパターンのハンドラーを追加します:
lua
Handlers.add(
"pingpong",
Handlers.utils.hasMatchingData("ping"),
Handlers.utils.reply("pong")
)
<div id="step-3"></div>
- このLuaスクリプトは3つのことを行います:
- "pingpong"という名前の新しいハンドラーを追加します。
Handlers.utils.hasMatchingData("ping")
を使用して、受信したメッセージがデータ"ping"を含むかどうかを確認します。- メッセージが"ping"を含む場合、
Handlers.utils.reply("pong")
が自動的にデータ"pong"を持つメッセージを返します。
ステップ4: エディタを終了する
- コードを書いたら、
.done
と入力してEnterを押すことでエディタを終了し、スクリプトを実行します。
ステップ5: Pingpongプロセスをテストする
プロセスをテストするために、データ"ping"を含むメッセージをプロセスに送信します。次のコマンドをaos CLIに入力して行います:
luaSend({ Target = ao.id, Data = "ping" })
プロセスは、
Inbox
に"pong"を含むメッセージで応答するはずです。
ステップ6: Inboxを監視する
Inbox
を確認して"ping"メッセージと、Outbox
を確認して"pong"の返信があるかどうかを確認します。
lua
Inbox[#Inbox].Data
ステップ7: 実験して観察する
- 異なるメッセージを送信して、"ping"メッセージのみが"pong"の応答を引き起こす様子を観察してみてください。
ステップ8: プロセスを保存する(オプション)
- 将来的にこのプロセスを使用したい場合は、ハンドラーコードをLuaファイルに保存して、aosセッションで簡単に読み込むことができます。
INFO
追加のヒント:
- ハンドラーの効率性: ハンドラー関数のシンプルさが重要です。効率的で、正しい条件下でのみトリガーされるようにしてください。
結論
おめでとうございます!これで、aosで基本的なping-pongプロセスを作成しました。このチュートリアルは、メッセージ処理とaos環境内でのプロセスの相互作用を理解するための基礎を提供します。これらの概念に慣れてきたら、より複雑なプロセスや相互作用に拡張し、aosの可能性を探求することができます。